热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

确定性|笔者_轻松入门强化学习的一本新书《EasyRL强化学习教程》

篇首语:本文由编程笔记#小编为大家整理,主要介绍了轻松入门强化学习的一本新书《EasyRL强化学习教程》相关的知识,希望对你有一定的参考价值。强化学习(

篇首语:本文由编程笔记#小编为大家整理,主要介绍了轻松入门强化学习的一本新书《Easy RL 强化学习教程》相关的知识,希望对你有一定的参考价值。


强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)里面去最大化它能获得的奖励。如图 1.1所示,强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在环境里面获取某个状态后,它会利用该状态输出一个动作(action),这个动作也称为决策(decision)。然后这个动作会在环境之中被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。

强化学习的国内相关资料相对较少, 入门较为困难。因此,笔者尝试在网上寻找公开课进行学习,在精心 挑选后,使用李宏毅老师的“深度强化学习”、周博磊老师的“强化学习纲要”以 及李科浇老师的“百度强化学习”公开课(以下简称 “3 门公开课”) 作为学习课 程, 获益匪浅, 于是将所学内容结合笔者个人的理解和体会初步整理成笔记。之 后, 在众多优秀开源教程的启发下, 笔者决定将该笔记制作成教程来让更多的强化学习初学者受益。这本教程就是刚刚上架的“蘑菇书”《Easy RL 强化学习教程》。


Easy RL 强化学习教程


萃取3门强化学习经典公开课精华

李宏毅“深度强化学习”+周博磊“强化学习纲要”+李科浇“世界冠军带你从零实践强化学习”

Datawhale的开源“蘑菇书”——Easy-RL

来自中科院、清华、北大的Datawhale成员自学笔记,GitHub发布9个月下载过万。

小白轻松入门的指南,大厂强化学习面试敲门砖

简单生动的例子+重难点公式详细推导+关键词、习题和面试题+Python实现代码

4项配套资源,满满意外收获!

◆ 可下载Python实现代码 ◆ 可下载习题答案

◆ 可下载面试答案 ◆ 学习交流服务

全书主要内容源于 3 门公开课, 并在其基础上进行了一定的原创。比如, 为了尽可能地降低阅读门槛, 笔者对 3 门公开课的精华内容进行选取并优化, 所涉及的公式都有详细的推导过程, 对较难理解的知识点进行了重点讲解和强化, 方 便读者较为轻松地入门。此外, 为了书籍的丰富性, 笔者还补充了不少 3 门公开 课之外的强化学习相关知识。全书共 13 章, 大体上可分为 2 个部分: 第 1 部分 包括第 1 ∼ 3 章,介绍强化学习基础知识以及传统强化学习算法;第 2 部分包括

第 4 ∼ 13 章, 介绍深度强化学习算法以及常见问题的解决方法。第 2 部分各章 相对独立,读者可根据自己的兴趣和时间情况选择阅读。

李宏毅老师是台湾大学副教授,其研究方向为机器学习、深度学习及语音识别 与理解。李宏毅老师的课程在国内很受欢迎, 很多人选择的机器学习入门学习材料都是李宏毅老师的公开课视频。李宏毅老师的“深度强化学习”课程幽默风趣, 他会通过很多有趣的例子来讲解强化学习理论。比如李老师经常会用玩雅达利游 戏的例子来讲解强化学习算法。周博磊老师是 UCLA(University of California, Los Angeles,加利福尼亚大学洛杉矶分校)助理教授(原香港中文大学助理教授), 其研究方向为机器感知和智能决策, 在人工智能顶级会议和期刊发表了 50 余篇 学术论文, 论文总引用数超过 1 万次。周博磊老师的“强化学习纲要”课程理论 严谨、内容丰富, 全面地介绍了强化学习领域, 并且有相关的代码实践。李科浇 老师是飞桨强化学习 PARL 团队核心成员,百度高级研发工程师,其所在团队曾 两度夺得 NeurIPS 强化学习赛事冠军。李科浇老师的“百度强化学习”实战性强, 通过大量的代码来讲解强化学习。经过笔者不完全统计, 本书所依托的 3 门公开 课的总播放量为 80 多万,深受广大初学者欢迎,3 位老师的课程均可在哔哩哔哩 (B 站)上进行观看。读者在观看相关公开课的同时,可以使用本书作为教辅,进 一步深入理解公开课的内容。

本书在大部分章节的最后设置了原创的关键词、习题和面试题来提高和巩固 读者对知识的清晰度和掌握程度。其中,关键词部分总结了对应章节的重点概念, 方便读者高效地回忆并掌握核心内容; 习题部分以问答的形式阐述了本章节中出 现的知识点,帮助读者理清知识脉络;面试题部分来源于大厂的算法岗面试真题, 通过还原最真实的面试场景和面试的问题, 帮助读者开阔思路, 为读者面试理想 的岗位助力。此外, 笔者以为, 强化学习是一个理论与实践相结合的学科, 读者 不仅要理解其算法背后的一些数学原理, 还要通过上机实践来实现算法。本书配 有对应的 Python 代码实现, 可以让读者通过动手实现各种经典的强化学习算法, 充分掌握强化学习算法的原理。本书经过近 1 年的更新迭代以及读者对于我们开源版教程的上百次的反馈和交流,对您的学习和工作一定会是一个有利的加持。


本书包含什么内容?

全书共13章,大体上可分为两个部分:第一部分包括第1~3章,介绍强化学习基础知识以及传统强化学习算法;第二部分包括第4~13章,介绍深度强化学习算法及其常见问题的解决方法。第二部分各章相对独立,读者可根据自己的兴趣和时间选择性阅读。


我是刚刚毕业的学生,想去“大厂”工作,本书是否有帮助?

本书习题部分以问答的形式阐述了相应章中出现的知识点,以帮助读者理清知识脉络;面试题部分的内容源于“大厂”的算法岗面试真题,通过还原真实的面试场景和面试问题,为读者面试理想的岗位助力。


目录

第 1 章绪论 1

1.1 强化学习概述 1

1.1.1 强化学习与监督学习 1

1.1.2 强化学习的例子 5

1.1.3 强化学习的历史 7

1.1.4 强化学习的应用 8

1.2 序列决策概述 10

1.2.1 智能体和环境 10

1.2.2 奖励 10

1.2.3 序列决策 10

1.3 动作空间 12

1.4 强化学习智能体的组成部分和类型 12

1.4.1 策略 13

1.4.2 价值函数 13

1.4.3 模型 14

1.4.4 强化学习智能体的类型 16

1.5 学习与规划 19

1.6 探索和利用 20

1.7 强化学习实验 22

1.7.1 Gym 23

1.7.2 MountainCar-v0 例子27

1.8 关键词 30

1.9 习题 31

1.10 面试题 32

参考文献 32

第 2 章马尔可夫决策过程 33

2.1 马尔可夫过程 34

2 | Easy RL:强化学习教程

2.1.1 马尔可夫性质 34

2.1.2 马尔可夫过程/马尔可夫链 34

2.1.3 马尔可夫过程的例子 35

2.2 马尔可夫奖励过程 36

2.2.1 回报与价值函数 36

2.2.2 贝尔曼方程 38

2.2.3 计算马尔可夫奖励过程价值的迭代算法 42

2.2.4 马尔可夫奖励过程的例子 43

2.3 马尔可夫决策过程 44

2.3.1 马尔可夫决策过程中的策略 44

2.3.2 马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别 45

2.3.3 马尔可夫决策过程中的价值函数 45

2.3.4 贝尔曼期望方程 46

2.3.5 备份图47

2.3.6 策略评估 49

2.3.7 预测与控制 51

2.3.8 动态规划 53

2.3.9 使用动态规划进行策略评估 53

2.3.10 马尔可夫决策过程控制 56

2.3.11 策略迭代 58

2.3.12 价值迭代 61

2.3.13 策略迭代与价值迭代的区别 63

2.3.14 马尔可夫决策过程中的预测和控制总结 66

2.4 关键词 67

2.5 习题 68

2.6 面试题 69

参考文献 69

第3 章表格型方法 70

3.1 马尔可夫决策过程 70

3.1.1 有模型71

3.1.2 免模型72

3.1.3 有模型与免模型的区别 73

3.2 Q 表格 73

3.3 免模型预测 77

3.3.1 蒙特卡洛方法 77

3.3.2 时序差分方法 80

3.3.3 动态规划方法、蒙特卡洛方法以及时序差分方法的自举和采样 86

3.4 免模型控制 88

3.4.1 Sarsa:同策略时序差分控制 91

3.4.2 Q 学习:异策略时序差分控制 94

3.4.3 同策略与异策略的区别 97

3.5 使用Q 学习解决悬崖寻路问题 98

3.5.1 CliffWalking-v0 环境简介 98

3.5.2 强化学习基本接口 100

3.5.3 Q 学习算法 102

3.5.4 结果分析 103

3.6 关键词 104

3.7 习题105

3.8 面试题 105

参考文献 105

第4 章策略梯度 106

4.1 策略梯度算法 106

4.2 策略梯度实现技巧 115

4.2.1 技巧1:添加基线 115

4.2.2 技巧2:分配合适的分数 117

4.3 REINFORCE:蒙特卡洛策略梯度 119

4.4 关键词 125

4.5 习题125

4.6 面试题 125

参考文献 126

第5 章近端策略优化 127

5.1 从同策略到异策略 127

5.2 近端策略优化 133

5.2.1 近端策略优化惩罚 134

4 | Easy RL:强化学习教程

5.2.2 近端策略优化裁剪 135

5.3 关键词 138

5.4 习题139

5.5 面试题 139

参考文献 139

第6 章深度Q 网络 140

6.1 状态价值函数 140

6.2 动作价值函数 145

6.3 目标网络 150

6.4 探索152

6.5 经验回放 154

6.6 深度Q 网络算法总结156

6.7 关键词 157

6.8 习题158

6.9 面试题 159

参考文献 159

第7 章深度Q 网络进阶技巧 160

7.1 双深度Q 网络 160

7.2 竞争深度Q 网络 162

7.3 优先级经验回放 165

7.4 在蒙特卡洛方法和时序差分方法中取得平衡 166

7.5 噪声网络 167

7.6 分布式Q 函数 168

7.7 彩虹170

7.8 使用深度Q 网络解决推车杆问题 172

7.8.1 CartPole-v0 简介 172

7.8.2 深度Q 网络基本接口 173

7.8.3 回放缓冲区175

7.8.4 Q 网络 175

7.8.5 深度Q 网络算法 176

7.8.6 结果分析 178

7.9 关键词 179

7.10 习题 180

7.11 面试题 180

参考文献 180

第8 章针对连续动作的深度Q 网络 181

8.1 方案1:对动作进行采样182

8.2 方案2:梯度上升 182

8.3 方案3:设计网络架构 182

8.4 方案4:不使用深度Q 网络 183

8.5 习题184

第9 章演员-评论员算法 185

9.1 策略梯度回顾 185

9.2 深度Q 网络回顾 186

9.3 演员-评论员算法 187

9.4 优势演员-评论员算法 188

9.5 异步优势演员-评论员算法 190

9.6 路径衍生策略梯度 191

9.7 与生成对抗网络的联系 195

9.8 关键词 196

9.9 习题196

9.10 面试题 196

第 10 章深度确定性策略梯度 197

10.1 离散动作与连续动作的区别 197

10.2 深度确定性策略梯度199

10.3 双延迟深度确定性策略梯度 203

10.4 使用深度确定性策略梯度解决倒立摆问题 205

10.4.1 Pendulum-v1 简介 205

10.4.2 深度确定性策略梯度基本接口 206

10.4.3 Ornstein-Uhlenbeck 噪声 207

10.4.4 深度确定性策略梯度算法 208

10.4.5 结果分析209

10.5 关键词 211

10.6 习题 211

10.7 面试题 211

参考文献 211

第 11 章稀疏奖励212

11.1 设计奖励 212

11.2 好奇心 214

11.3 课程学习 216

11.4 分层强化学习 219

11.5 关键词 221

11.6 习题 222

参考文献 222

第 12 章模仿学习223

12.1 行为克隆 223

12.2 逆强化学习 226

12.3 第三人称视角模仿学习 231

12.4 序列生成和聊天机器人 232

12.5 关键词 233

12.6 习题 233

参考文献 234

第 13 章AlphaStar 论文解读 235

13.1 AlphaStar 以及背景简介 235

13.2 AlphaStar 的模型输入和输出是什么呢?——环境设计 235

13.2.1 状态(网络的输入) 236

13.2.2 动作(网络的输出) 236

13.3 AlphaStar 的计算模型是什么呢?——网络结构 237

13.3.1 输入部分237

13.3.2 中间过程239

13.3.3 输出部分239

13.4 庞大的AlphaStar 如何训练呢?——学习算法 240

13.4.1 监督学习240

13.4.2 强化学习241

13.4.3 模仿学习242

13.4.4 多智能体学习/自学习 243

13.5 AlphaStar 实验结果如何呢?——实验结果 243

13.5.1 宏观结果243

13.5.2 其他实验(消融实验) 244

13.6 关于AlphaStar 的总结 245

参考文献 245



推荐阅读
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
author-avatar
U友39373533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有